package avicti.bdp.dto.org;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.math.BigDecimal;
import java.util.Objects;

/**
 * 股东信息
 */

public class ShareholderInfo {
    /**
     * 股东类别（与集团管理关系）
     */
    @JsonProperty("shareholderClassification")
    private String shareholderClassification;
    /**
     * 集团单位统一代码（集团所属单位股东）
     */
    @JsonProperty("groupUnifiedUnitCode")
    private String groupUnifiedUnitCode;
    /**
     * 股东名称
     */
    @JsonProperty("shareholderName")
    private String shareholderName;
    /**
     * 股东国别
     */
    @JsonProperty("shareholderCountry")
    private String shareholderCountry;

    /**
     * 股东单位类型
     */
    @JsonProperty("shareholderUnitType")
    private String shareholderUnitType;
    /**
     * 持股比例
     */
    @JsonProperty("shareholdingRatio")
    private BigDecimal shareholdingRatio;

    /**
     * 实缴资本（万元）
     */
    private java.lang.String shareholderConcapital;

    /**
     * 出资额（万元）
     */
    private java.lang.String shareholderConamount;

    /**
     * 认缴资本（万元）
     */
    private java.lang.String shareholderSubcapital;
    /**
     * 是否集团内
     */
    @JsonProperty("isGroup")
    private boolean isGroup;

    public String getShareholderConcapital() {
        return shareholderConcapital;
    }

    public void setShareholderConcapital(String shareholderConcapital) {
        this.shareholderConcapital = shareholderConcapital;
    }

    public String getShareholderConamount() {
        return shareholderConamount;
    }

    public void setShareholderConamount(String shareholderConamount) {
        this.shareholderConamount = shareholderConamount;
    }

    public String getShareholderSubcapital() {
        return shareholderSubcapital;
    }

    public void setShareholderSubcapital(String shareholderSubcapital) {
        this.shareholderSubcapital = shareholderSubcapital;
    }
    @JsonIgnore
    public boolean isGroup() {
        return isGroup;
    }

    public void setIsGroup(boolean group) {
        isGroup = group;
    }

    public String getShareholderClassification() {
        return shareholderClassification;
    }

    public void setShareholderClassification(String shareholderClassification) {
        this.shareholderClassification = shareholderClassification;
    }

    public String getGroupUnifiedUnitCode() {
        return groupUnifiedUnitCode;
    }

    public void setGroupUnifiedUnitCode(String groupUnifiedUnitCode) {
        this.groupUnifiedUnitCode = groupUnifiedUnitCode;
    }

    public String getShareholderName() {
        return shareholderName;
    }

    public void setShareholderName(String shareholderName) {
        this.shareholderName = shareholderName;
    }

    public String getShareholderCountry() {
        return shareholderCountry;
    }

    public void setShareholderCountry(String shareholderCountry) {
        this.shareholderCountry = shareholderCountry;
    }

    public String getShareholderUnitType() {
        return shareholderUnitType;
    }

    public void setShareholderUnitType(String shareholderUnitType) {
        this.shareholderUnitType = shareholderUnitType;
    }

    public BigDecimal getShareholdingRatio() {
        return shareholdingRatio;
    }

    public void setShareholdingRatio(BigDecimal shareholdingRatio) {
        this.shareholdingRatio = shareholdingRatio;
    }

    @Override
    public boolean equals(java.lang.Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        ShareholderInfo shareholderInfo = (ShareholderInfo) o;
        return Objects.equals(this.shareholderClassification, shareholderInfo.shareholderClassification) && Objects.equals(this.groupUnifiedUnitCode, shareholderInfo.groupUnifiedUnitCode) && Objects.equals(this.shareholderName, shareholderInfo.shareholderName) && Objects.equals(this.shareholderCountry, shareholderInfo.shareholderCountry) && Objects.equals(this.shareholderUnitType, shareholderInfo.shareholderUnitType) && Objects.equals(this.shareholdingRatio, shareholderInfo.shareholdingRatio);
    }

    @Override
    public int hashCode() {
        return Objects.hash(shareholderClassification, groupUnifiedUnitCode, shareholderName, shareholderCountry, shareholderUnitType, shareholdingRatio);
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("class ShareholderInfo {\n");

        sb.append("    shareholderClassification: ").append(toIndentedString(shareholderClassification)).append("\n");
        sb.append("    groupUnifiedUnitCode: ").append(toIndentedString(groupUnifiedUnitCode)).append("\n");
        sb.append("    shareholderName: ").append(toIndentedString(shareholderName)).append("\n");
        sb.append("    shareholderCountry: ").append(toIndentedString(shareholderCountry)).append("\n");
        sb.append("    shareholderUnitType: ").append(toIndentedString(shareholderUnitType)).append("\n");
        sb.append("    shareholdingRatio: ").append(toIndentedString(shareholdingRatio)).append("\n");
        sb.append("}");
        return sb.toString();
    }

    /**
     * Convert the given object to string with each line indented by 4 spaces (except the first line).
     */
    private String toIndentedString(java.lang.Object o) {
        if (o == null) {
            return "null";
        }
        return o.toString().replace("\n", "\n    ");
    }

}
